package br.com.sjdr.projeto.pessoa;

import java.awt.Color;

import javax.swing.JTextArea;
import javax.swing.JTextField;

import br.com.sjdr.projeto.persistencia.PersistirAdministrador;

public class Administrador extends Pessoa{

	private String CPF;
	private String Senha;

	public String getCPF() {
		return CPF;
	}

	public void setCPF(String CPF) {
		this.CPF = CPF;
	}
	
	public String getSenha() {
		return Senha;
	}

	public void setSenha(String Senha) {
		this.Senha = Senha;
	}
	
	/**
	 * Metodo responsavel por Cadastrar um novo Administrador
	 * @param campoNome
	 * @param campoCpf
	 * @param campoSenha
	 * @param campomsg
	 */
	public static void cadastraAdministrador(JTextField campoNome, JTextField campoCpf,JTextField camposenha,JTextField campomsg) {
		
		Administrador adm = new Administrador();
		adm.setNome(campoNome.getText());
										
		if(verificaExistBool(adm.getNome())==true){ 
			campoNome.setForeground(Color.RED);
			campoNome.setText("CLIENTE JA CADASTRADO!");
			campomsg.setForeground(Color.RED);
			campomsg.setText("Falha ao efetuar cadastro!");					
		}
						
		else{  
							
			adm.setSenha(camposenha.getText());  
																				
			if(!verificaCPF(campoCpf.getText())){ 
				campoCpf.setForeground(Color.RED);
				campoCpf.setText("CPF INVÁLIDO,DIGITE OUTRO!");
				campomsg.setForeground(Color.RED);
				campomsg.setText("Falha ao efetuar cadastro!");						
			}
			else{
				adm.setCPF(campoCpf.getText());
				PersistirAdministrador.gravarobjetoA(adm);
				campoNome.setText("");   
				camposenha.setText("");
				campoCpf.setText("");
				campomsg.setForeground(Color.BLUE);
				campomsg.setText("Cadastro efetuado com sucesso!");
			}
		}
		
	}
    /**
     * metodo que verifica se CPF contem letras
     * @param CPF
     * @return
     */
	public static boolean verificaCPF(String CPF) { 
		try {
			Long.parseLong(CPF);
			
		} catch (Exception e) {
			return false;
		}
		return true;
	}
	
	/**
	 * metodo que verifica se o Administrador ja exite e retorna um inteiro com sua posiçao no vetor
	 * @param nome
	 * @return
	 */
	public static int verificaExistInt(String nome) { 
		int var = -1;
		for (int i = 0; i < PersistirAdministrador.admistradorList.size(); i++) {
			if (PersistirAdministrador.admistradorList.get(i).getNome()
					.equalsIgnoreCase(nome)) {
				var = i;
			}
		}
		return var;
	}
	
	/**
	 * metodo que verifica se Administrador ja existe e retorna um valor booleano
	 * @param nome
	 * @return
	 */
	public static boolean verificaExistBool(String nome) {
		boolean var = false;
		for (int i = 0; i < PersistirAdministrador.admistradorList.size(); i++) {
			if (PersistirAdministrador.admistradorList.get(i).getNome()
					.equalsIgnoreCase(nome)) {
				var = true;
			}
		}
		return var;
	}

	
	
	public static int buscarAdministrador(JTextField campoNome, JTextArea resultado) { 
		
		
		Administrador vend = new Administrador();
		vend.setNome(campoNome.getText());
		
		
		int elemento = 0;
		if (verificaExistBool(vend.getNome()) == true) {
			elemento = verificaExistInt(vend.getNome());
			if(elemento > -1){
				
			resultado.append("\n Nome: "+PersistirAdministrador.admistradorList.get(elemento).getNome());
			resultado.append("\n CPF: " +PersistirAdministrador.admistradorList.get(elemento).getCPF());
			
			}else{
				resultado.append("Administrador nao encontrado!");
				}
		} else {
			resultado.append("Administrador nao esta cadastrado!");
			elemento = -1;
		}
		return elemento;
	}
	
	public static void excluirAdministrador(JTextField campoNome, JTextArea resultado) { 
		int x = 0;
		x = buscarAdministrador(campoNome, resultado);
		
		if (x >= 0){
			PersistirAdministrador.admistradorList.remove(x);
			resultado.setText("");
			resultado.append("Exclusao efetuada com sucesso!");	
		}
		else{
			resultado.setText("");
			resultado.append("Nao foi possivel efetuar a exclusao!");	
			}
	}
	
		
	}


